package cn.xopencode.score.api.rpc;

import cn.xopencode.common.framework.vo.CommonResult;
import cn.xopencode.common.framework.vo.PageResult;
import cn.xopencode.score.api.rpc.demand.dto.ScoreDetailsRespDTO;
import cn.xopencode.score.api.rpc.demand.dto.ScoreReqDTO;
import cn.xopencode.score.api.rpc.demand.dto.ScoreRespDTO;
import cn.xopencode.securityservice.rpc.activity.dto.ActivityCreateReqDTO;
import cn.xopencode.securityservice.rpc.suggest.dto.SuggestCreateReqDTO;
import cn.xopencode.securityservice.rpc.violate.dto.ViolateCreateReqDTO;

import javax.validation.Valid;
import java.util.Date;
import java.util.List;

/**
 * 积分查询情况
 */
public interface ScoreRpc {

    /**
     * 获取个人积分详细情况
     * @param empId 员工编号
     * @return 个人分数详情
     */
    CommonResult<ScoreDetailsRespDTO> getScoreDetails(String empId);

    /**
     * 获取积分列表
     * @param
     * @return 积分列表数据
     */
    CommonResult<List<ScoreRespDTO>> getScoreList();


    /**
     * 获取日期下的积分列表
     * @param scoreReqDTO 日期
     * @return
     */
    CommonResult<List<ScoreRespDTO>> getDateScoreList(ScoreReqDTO scoreReqDTO);


    /**
     * 创新与合理化建议
     * @param createDTO
     * @return
     */
    public Double addSuggestScore(SuggestCreateReqDTO createDTO);

    /**
     * 安全活动与技能比武情况
     * @param createDTO
     * @return
     */
    public Double addActivityScore(ActivityCreateReqDTO createDTO);

    /**
     * 反三违
     * @param createDTO
     * @return
     */
    public Double updateViolateScore(ViolateCreateReqDTO createDTO);

}
